public class Book {
    private String title;
    private int pages;

    public Book(String title, int pages) {
        setTitle(title);
        setPages(pages);
    }

    public void setTitle(String title) {
        if (title == null)
            throw new IllegalArgumentException("null title");
        this.title = title;
    }

    public String getTitle() {
        return title;
    }

    public void setPages(int pages) {
        if (pages < 0)
            throw new IllegalArgumentException("negative pages");
        this.pages = pages;
    }

    public int getPages() {
        return pages;
    }

    public String toString() {
        return "Book: title: " + title + " pages: " + pages;
    }

    public boolean equals(Object rhs) {
        if (rhs instanceof Book) {
            Book b = (Book) rhs;
            return title.equals(b.title) && pages == b.pages;
        }
        return false;
    }

    public static void main(String[] args) {
        Book javaProgLang = new Book("The Java Programming Language", 333);
        System.out.println(javaProgLang);
        Book mobyDick = new Book("Moby Dick", -2048);
        System.out.println(mobyDick);
        Book badBook = new Book(null, 256);
        System.out.println(badBook);
    }
}
